#ifndef BIG_MATH_H
#define BIG_MATH_H 1

#define BYTES	128
#define LENGTH	BYTES / sizeof(unsigned int)

typedef struct{
	unsigned int words[LENGTH];
} big_int;


void lib_init();

void add(big_int* result, const big_int* op1, const big_int* op2);

void subtract( big_int* result, const big_int* op1, const big_int* op2);

void init_big_int(big_int* result, char* input);

void print_big_int(const big_int* toprint);

void assign(big_int* dest, const big_int* source);

int less_than(const big_int* op1, const big_int* op2);

big_int* bit_mult(big_int* op, int bit);

int bit_at(const big_int* op, int position);

int num_bits(const big_int* op);

void right_shift_by1(big_int* result, const big_int* op);


//FOR TESTING
int   num_words(char* input);


#endif	/* BIG_MATH_H  */


